package com.pro.dao;

import com.pro.entity.Course;
import com.pro.entity.CourseClass;
import com.pro.entity.CourseRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.omg.CORBA.INTERNAL;

import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;

/*
    赵自强
    2021/11/4
    课程dao
*/
@Mapper
public interface CourseMapper {

    //商品分类  赵自强  2021/11/4
    List<CourseClass> getCourseClass();

    //根据分类查询数据 赵自强 2021/11/5
    List<Course> getCourse(@Param("classId") Integer classId);

    //课程列表高级检索 赵自强 21/11/9
    List<Course> advancedRetrieval(
            @Param("classId") Integer classId
            , @Param("courseName") String courseName
            , @Param("coursePrice") Double coursePrice
            , @Param("trueName") String trueName
            , @Param("courseCstatus") Integer courseCstatus
            , @Param("courseLabel") String courseLabel
    );

    //课程列表普通搜索 赵自强 21/11/9
    List<Course> ordinarySearch(
            @Param("name") String name
            , @Param("courseName") String courseName
            , @Param("trueName") String trueName
            , @Param("courseLabel") String courseLabel
    );

    //根据id查询课程 赵自强 21/11/9
    Course getCourseById(@Param("courseId") Integer courseId);

    //根据id修改课程 赵自强 21/11/9
    Boolean courseEdit(Course course);

    //课程日志 赵自强 21/11/10
    List<Course> getCourseJournals();

    //课程日志修改价格后添加至日志 记录课程历史价格 赵自强 21/11/10
    Boolean addCourseJournal(Course course);

    //课程列表审核详情信表格数据 赵自强 21/11/11
    List<CourseRecord> getAuditDetalis(@Param("courseId") Integer courseId,@Param("type") Integer type);

    //根据id删除课程列表其中一条数据 赵自强 21/11/11
    Boolean delCourse(@Param("courseId") Integer courseId);

    //添加课程 赵自强 21/11/11
    Boolean addCourse(Course course);


    //课程操做日志查询 赵自强 21/11/14
    List<Course> operationLog();

    //课程操作日志添加 赵自强 21/11/14
    Boolean addoperationLog(Course course);

    //课程列表ztree树 添加树节点 赵自强 21/11/15
    Boolean addZtreeNode(CourseClass courseClass);


    //课程列表ztree树 修改树节点 赵自强 21/11/15
    Boolean editZtreeNode(CourseClass courseClass);

    //课程列表ztree树 删除树节点 赵自强 21/11/15
    Boolean delZtreeNode(CourseClass courseClass);

    //操作日志检索
    List<Course> operationLogRetrieval(Integer dictSort,String trueName);

    //历史详情价格检索
    List<Course> journalRetrieval(String courseName,String name,String trueName,Integer courseCstatus);

    //导入excel 赵自强 21/11/09
    Boolean addExcel(Course course);

    //setCourseStatus  课程列表 上架下架 赵自强 21/12/13 Integer courseStatus
    Boolean setCourseStatus(@Param("courseStatus") Integer courseStatus,@Param("courseId") Integer courseId);



}